load("@rules_proto//proto:defs.bzl", "proto_library")
load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")

proto_library(
    name = "kvflowcontrolpb_proto",
    srcs = ["kvflowcontrol.proto"],
    strip_import_prefix = "/pkg",
    visibility = ["//visibility:public"],
    deps = [
        "//pkg/raft/raftpb:raftpb_proto",
        "@com_github_gogo_protobuf//gogoproto:gogo_proto",
    ],
)

go_proto_library(
    name = "kvflowcontrolpb_go_proto",
    compilers = ["//pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_compiler"],
    importpath = "github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvflowcontrol/kvflowcontrolpb",
    proto = ":kvflowcontrolpb_proto",
    visibility = ["//visibility:public"],
    deps = [
        "//pkg/raft/raftpb",
        "//pkg/roachpb",  # keep
        "@com_github_gogo_protobuf//gogoproto",
    ],
)

go_library(
    name = "kvflowcontrolpb",
    srcs = ["kvflowcontrol.go"],
    embed = [":kvflowcontrolpb_go_proto"],
    importpath = "github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvflowcontrol/kvflowcontrolpb",
    visibility = ["//visibility:public"],
    deps = [
        "//pkg/util/admission/admissionpb",
        "@com_github_cockroachdb_redact//:redact",
    ],
)
